public class Test {
    //冒泡算法，
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        // 外层循环控制排序趟数
        for (int i = 0; i < n - 1; i++) {
            // 优化：标记当前趟是否发生交换
            boolean swapped = false;
            // 内层循环进行相邻元素比较和交换
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    // 交换相邻元素
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    swapped = true;
                }
            }
            // 如果本轮没有发生交换，说明数组已有序，提前结束
            if (!swapped) break;
        }
    }

}
